iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Kotlin

new to Kotlin系列 第 24

Day 24 構建器

  • 分享至 

  • xImage
  •  

介紹完類型別名後,接著我們要繼續介紹構建器(builders)
透過良好命名的函式做為構建器,將可實現型別安全(type-safe)、靜態型別(statically-typed)

import com.example.html.*

fun result() =
    html {
        head {
            title {+"XML encoding with Kotlin"}
        }
        body {
            h1 {+"XML encoding with Kotlin"}
            p  {+"this format can be used as an alternative markup to XML"}

            a(href = "https://kotlinlang.org") {+"Kotlin"}

            p {
                +"This is some"
                b {+"mixed"}
                +"text. For more see the"
                a(href = "https://kotlinlang.org") {+"Kotlin"}
                +"project"
            }
            p {+"some text"}

            p {
                for (arg in args)
                    +arg
            }
        }
    }

思考以上範例,在這裡html實際上作為實際上作為函式,並使用lambda表示式做為引數
函式的定義如下:

fun html(init: HTML.() -> Unit): HTML {
    val html = HTML()
    html.init()
    return html
}

藉由this可以讀取,在這裡head以及body都是HTML的成員函式

html {
    this.head { ... }
    this.body { ... }
}

上一篇
Day 23 類型別名
下一篇
Day 25 Null安全性
系列文
new to Kotlin30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言